1. Field of the Invention
The present invention relates to a device and a method for exchanging data or messages between units, for example, microprocessors or memories, of an integrated circuit.
2. Discussion of the Related Art
Generally, the data exchange between units of an integrated circuit is performed via an interconnect unit. A unit connected to the interconnect unit which can initiate a data exchange is called a master or initiating unit, and a unit connected to the interconnect unit which can only respond to a request from an initiating unit is called a target unit or slave unit.
According to a conventional data exchange device example, the interconnect unit comprises a data exchange bus which is shared between the integrated circuit units, and an arbitration unit which controls the access to the bus. The bus is divided, for example, into a bus for transmitting addresses of locations in a memory and a data transmission bus. However, the management of the message transfer over a shared bus becomes difficult as soon as the number of initiating and target units connected to the bus is significant, especially due to the fact that all requests must transit through the arbitration unit.
Another example of data exchange unit relates to networks on chip (NoC) for which the data are exchanged in packets, with at least one packet comprising a header identifying the target unit for which the packet is intended. This includes, for example, the technology sold by STMicroelectronics Company under denomination STNoC.
Initiating units and/or target units are generally distributed in several locations of the integrated circuit and, for each initiating and target unit, the interconnect unit comprises conditional logic elements, for example, multiplexers via which the data to be transmitted are selected. With the increase in the number of initiating and target units and current constraints relative to the size of integrated circuits, it becomes more and more difficult to design the interconnect unit, that is, to have at the integrated circuit level the elements forming the interconnect unit for connecting all the initiating and target units of the integrated circuit.
The quality of service of a data exchange device can be defined as the capacity of the device to transmit data in good conditions in terms of availability, bit rate, transmit delays, etc. One of the parameters defining the quality of service is the latency, which corresponds to the time elapsing between the transmission of a request by an initiating unit and the time when the requested operation is performed. Another parameter is the bandwidth, which corresponds to the amount of data that can transit through the interconnect unit within a given time. Another parameter of the quality of service corresponds to the capacity of the device to provide the initiating and target units bit rates and response times which are different for each unit. This is called allocating the resources of the data exchange device.
It appears to be difficult to obtain a satisfactory quality of service with existing data exchange devices. In particular, the differentiated allocation according to units, modifiable along time, of the resources of the data exchange device is difficult to implement in a simple way.